package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;

import java.util.Map;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {

    OrderInfo find(String orderNo);

    Integer findOrderByPhoneAndSid(String phone, Long seckillId);

    String doSecKill(Integer time, Long seckillId, String phone);

    /**
     * 超时订单取消更改订单状态为超时取消订单
     *
     * @param orderNo
     * @return
     */
    void cancelOrder(String orderNo);

    /**
     * 在线支付
     *
     * @param orderNo
     * @return
     */
    String payOnline(String orderNo);

    /**
     * 支付成功之后的逻辑,支付宝异步回调订单付款之后的业务处理
     *
     * @param orderNo
     */
    void paySuccess(String orderNo);

    /**
     * 调用支付宝进行退款操作
     *
     * @param orderInfo
     */
    void refundOnline(OrderInfo orderInfo);

    /**
     * 积分支付的逻辑
     *
     * @param orderNo
     */
    void payIntegral(String orderNo);

    /**
     * 积分退款的逻辑
     *
     * @param orderInfo
     */
    void refundIntegral(OrderInfo orderInfo);

    /**
     * 从缓存中查询订单
     *
     * @param orderNo
     * @return
     */
    OrderInfo findFromCache(String orderNo);
}
